#include <stdio.h>
#include <stdarg.h>

void error(char* fmt, ...){
	va_list ap;
	va_start(ap, fmt);
	printf("\033[31m");  // 将字体转为红色
	printf("error: ");
	printf("\033[0m");  // 将字体转为默认颜色
	vprintf(fmt, ap);  // 这里才是真正打印错误信息的地方
	va_end(ap);
}

int main(int argc, char const **argv)
{
	int i;

	if ( argc != 2){
		error("one argument is required. \n");
		printf("Usage: str2ascii string_argument\n");
		return 1;
	}

	// ---- hex -------------------------------------
	i = 0;
	printf("to hex: ");
	while( argv[1][i] ){
		printf("%02x ", argv[1][i++]);
	}
	printf("\n");

	// ---- dec -------------------------------------
	i = 0;
	printf("to dec: ");
	while( argv[1][i] ){
		printf("%3d ", argv[1][i++]);
	}
	printf("\n");

	return 0;
}